Add experimental QIR to AQT API converter. #162
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds an experimental conversion function from QIR to the AQT API format.
Due to the limited functionality of the backend, the subset of accepted QIR is quite small (see the conversion function's docstring for the main limitations).
Public documentation may be added once the functionality stabilizes and is properly exposed.
Details and comments
This patch only provides the conversion function and some rather optimistic tests. Follow ups will expose the functionality on
AQTResource
.For convenience, the set of accepted QIR QIS calls is slightly larger than the native gate set. Angle-wrapping is performed on the fly on single-qubit gates because it trigger the emission of extra operations. This is not the case for RXX gates and thus no angle-wrapping is performed.
New dependencies (gated by the
qir
feature):pyqir
is used to manipulate the QIR bitcodeqiskit-qir
is used to conveniently generate QIR modules from QiskitQuantumCircuit
s.